package mvc;

import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

import tp3.*;

public class ControladorGps {
	public enum Pantalla {
	    MENU, MAPA, JUEGO_TERMINADO
	}
	
	public Pantalla pantalla = Pantalla.MENU;
	
	private Juego modelo;
	private Jugador jugador;
	private Estado estado;
	
	public ControladorGps (final Juego modelo){
		this.modelo = modelo;
	}
	public void keyPressed(KeyEvent e){
		if (e.getKeyCode() == KeyEvent.VK_LEFT){
			modelo.getVehiculo().moverIzquierda();
		}
		if (e.getKeyCode() == KeyEvent.VK_RIGHT){
			modelo.getVehiculo().moverDerecha();
		}
		if (e.getKeyCode() == KeyEvent.VK_DOWN){
			modelo.getVehiculo().moverAbajo();
		}
		if (e.getKeyCode() == KeyEvent.VK_UP){
			modelo.getVehiculo().moverArriba();
		}

	}
	
	public void nuevoJugador(String name){
		jugador = new Jugador(name);
		modelo.jugadorNuevo(name);
	
	}
	public void cargarJugador(String nombre){
		modelo.cargar(nombre);
		jugador = modelo.getVehiculo().getJugador();
		estado = modelo.getVehiculo().getEstado();
		pantalla = Pantalla.MAPA;
	}
	public void nuevoJuego(int nivel){
		modelo.setNivel(nivel);
		modelo.nuevoJuego();
		modelo.setVehiculo(new Vehiculo(jugador, estado));
		pantalla = Pantalla.MAPA;
	}
	public void nuevoJuego(){
		modelo.nuevoJuego();
		modelo.setVehiculo(new Vehiculo(new Jugador(jugador.getNombre()),estado));
		pantalla = Pantalla.MAPA;

	}
	public void seleccionVehiculo(String vehiculo){
		if(vehiculo == "Auto"){
			estado = new Auto();
		}else if(vehiculo == "Moto"){
			estado = new Moto();
		}else if(vehiculo == "4x4"){
			estado = new Camioneta();
		}
	}
	public Iterator<String> iteradorListaJugadores(){
		return modelo.listaJugadores().iterator();
	}
	public Iterator<String> iteradorVehiculos(){
		List<String> listaVehiculos = new ArrayList<String>();
		listaVehiculos.add("Auto");
		listaVehiculos.add("Moto");
		listaVehiculos.add("4x4");
		
		return listaVehiculos.iterator();
	}
	public void guardar(){
		modelo.guardar();

	}
}
